package mashibing.eor;

/**
 * ClassName printEvenOddTimes
 * Create by hx
 * Date 2021/9/5 12:29 下午
 *
 */

public class printEvenOddTimes {
    public static void main(String[] args) {
        int arr[] = {1,1,1,1,2,2,3,3,3,3,4,4,4};
        printOddTimes1(arr);
        printRightNumber(5);
    }

    /**
     * arr中，只有一种数，出现奇数次
     * 偶数位进行异或操作等于0，最后剩一个奇数位
     * @param arr
     */
    public static void printOddTimes1(int arr[]){
        int eor = 0;
        for (int i = 0; i < arr.length; i++) {
            eor ^= arr[i];
        }
        System.out.println(eor);
    }

    /**
     * 把一个int类型的数，提取最右侧的1出来
     * @param a
     */
    public static void printRightNumber(int a){
//        int b = a & (~a + 1);
        int b = a & (-a);
        System.out.println(b);
    }
}
